﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CoreGallery.Core.Framework;

namespace CoreGallery.Core.Extensibility
{
    /// <summary>
    /// Defines the common attributes of an add-in.  Metadata such as name,
    /// description, and version allows the core engine to manage addins
    /// without respect to their actual function or implementation.
    /// </summary>
    public interface ICoreAddin
    {
        string Name { get; }
        string Creator { get; }
        string Description { get; }
        Uri CreatorHomePage { get; }
        Uri SupportHomePage { get; }
        Uri Update { get; }
        object Options { get; }
        string AboutText { get; }
        Version Version { get; }

        void OnInit(GalleryExplorer explorer);
        void OnLoad();
        void OnUnload();
    }
}
